package ig.util;

import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.File;
import java.io.OutputStream;
import java.util.Properties;


/**
 * @author Jimmy Sancchez
 *
 * Clase utilizada para cargar propiedades desde un archivo .properties
 */
public class LoadProperties {
    private static Properties props=null;
    private static File f=null;
    private static String msg=null;
    
    /**
     * Constructor de la clase
     */
    private static void loadProperties(String file){
        props = new Properties();//para cargar propiedades de un archivo
        f = new File(file);
        String msg=null;
        if (f.exists()) {
            try{
                InputStream is =new BufferedInputStream(new FileInputStream(f));
                props.load(is);

                is.close();
            }catch(Exception e){
                e.printStackTrace();
                System.out.println("No se pudo leer el archivo de propiedades.");
            }
        }//if
    }
    
    public static Properties loadPropertiess(String file){
        props = new Properties();//para cargar propiedades de un archivo
        f = new File(file);
        String msg=null;
        //System.out.println(f .getAbsolutePath());
        if (f.exists()) {
            try{
                InputStream is =new BufferedInputStream(new FileInputStream(f));
                props.load(is);
                is.close();
            }catch(Exception e){
                e.printStackTrace();
                System.out.println("No se pudo leer el archivo de propiedades.");
            }
        }//if
        return props;
    }
    public static boolean storePropertiess(Properties prop,String file,String comentario){
        f = new File(file);
        try{
            OutputStream os =new BufferedOutputStream(new FileOutputStream(f));
            prop.store(os,comentario);
            os.flush();
            os.close();            
        }catch(Exception e){
            e.printStackTrace();
            System.out.println("No se pudo Guardar las propiedades.");
            return false;
        }
        //}//if
        return true;
    }
    /**
     * Retorna el valor asociado al parametro "cadena" qeu se encuentra el archivo .properties
     * @param cadena el nombre de la propiedad que se quiere cargar
     * @return valor asociado al parametro "cadena"
     */
    public static String getProperties(String file,String cadena){
        loadProperties(file);
        msg = props.getProperty(cadena,null);
        return msg;
    }
}